package br.com.speedprevweb.bean;

import br.com.speedprevweb.dao.TipoOcorrenciaDao;
import br.com.speedprevweb.dao.impl.TipoOcorrenciaDaoImpl;
import br.com.speedprevweb.model.TipoOcorrencia;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.SessionScoped;
import javax.inject.Named;

@Named(value = "tipoOcorrenciaBean")
@SessionScoped
public class TipoOcorrenciaBean implements Serializable {

  private TipoOcorrencia tipoRegime = new TipoOcorrencia();
  private List<TipoOcorrencia> listaTipoOcorrencia = new ArrayList();

  public TipoOcorrenciaBean() {
    listaTipoOcorrencia = new TipoOcorrenciaDaoImpl().listarTodos();
    tipoRegime = new TipoOcorrencia();
  }

  public TipoOcorrencia getTipoOcorrencia() {
    return tipoRegime;
  }

  public void setTipoOcorrencia(TipoOcorrencia tipoRegime) {
    this.tipoRegime = tipoRegime;
  }

  public List<TipoOcorrencia> getTiposRegime() {
    return listaTipoOcorrencia;
  }

  public void setTiposRegime(List<TipoOcorrencia> listaTipoOcorrencia) {
    this.listaTipoOcorrencia = listaTipoOcorrencia;
  }

  public String descricaoTipoOcorrencia() {
    return this.tipoRegime.getDsTipoOcorrencia();
  }

  public String incluirTipoOcorrencia() {
    tipoRegime = new TipoOcorrencia();
    return "TipoOcorrenciaDetalhe";
  }

  public String preparaAlterarTipoOcorrencia() {
    return "TipoOcorrenciaDetalhe";
  }

  public String excluirTipoOcorrencia() {
    TipoOcorrenciaDao tpRegimeDao = new TipoOcorrenciaDaoImpl();
    tpRegimeDao.excluir(tipoRegime);
    listaTipoOcorrencia = new TipoOcorrenciaDaoImpl().listarTodos();
    tipoRegime = new TipoOcorrencia();
    return "/cadastros/TipoOcorrencia";
  }

  public String salvar() {
    if (tipoRegime.getIdTipoOcorrencia() == 0) {
      incluir();
    } else {
      alterar();
    }
    return "/cadastros/TipoOcorrencia";
  }

  public void incluir() {
    TipoOcorrenciaDao tpRegimeDao = new TipoOcorrenciaDaoImpl();
    tpRegimeDao.salvar(this.tipoRegime);
    listaTipoOcorrencia = new TipoOcorrenciaDaoImpl().listarTodos();
    tipoRegime = new TipoOcorrencia();
  }

  public void alterar() {
    TipoOcorrenciaDao tpRegimeDao = new TipoOcorrenciaDaoImpl();
    tpRegimeDao.alterar(tipoRegime);
  }

  public String cancelar() {
    return "TipoOcorrencia";
  }

  private void atualizarDataTable() {
    listaTipoOcorrencia = new TipoOcorrenciaDaoImpl().listarTodos();
    tipoRegime = new TipoOcorrencia();
  }

  public int totalRegistros() {
    return listaTipoOcorrencia.size();
  }
}
